package chapterright06;

import com.sun.org.apache.xerces.internal.dom.PSVIAttrNSImpl;

import java.util.Scanner;

/**
 * Created by Miracle yaochengwei on 2022/5/28 16:05
 */
public class ArrayReduce {

    public static void main(String[] args) {
/* 要求：实现动态的给数组添加元素效果，实现对数组扩容。ArrayAdd.java 1.原始数组使用静态分配 int[] arr = {1,2,3}
2.增加的元素 4，直接放在数组的最后 arr = {1,2,3,4}
3.用户可以通过如下方法来决定是否继续添加，添加成功，是否继续？y/n


思路分析
1.  定义初始数组 int[] arr = {1,2,3}//下标 0-2
2. 定义一个新的数组 int[] arrNew = new int[arr.length+1];  新的数组要比旧的数组多一
3. 遍历 arr 数组，依次将 arr 的元素拷贝到 arrNew 数组
4.将 4 赋给 arrNew[arrNew.length - 1] = 4;把 4 赋给 arrNew 最后一个元素
5.让 arr  指向 arrNew ;	arr = arrNew; 那么 原来 arr 数组就被销毁
6.  创建一个 Scanner 可以接受用户输入
7.  因为用户什么时候退出，不确定，老师使用 do-while + break 来控制
*/


        Scanner myScanner = new Scanner(System.in);
        //初始化数组
        int[] arr = {1,2,3,4,5};
        boolean reduce = false;
        do {
            int[] arrNew = new int[arr.length - 1]; //增加一个长度
            //遍历arr 数组，依次，将arr 的元素 拷贝到arrNew数组
            for (int i = 0;i<arr.length-1;i++){
                arrNew[i] = arr[i];
            }
            System.out.println("缩减完成，本次缩减元素为"+arr[arr.length-1]);
            arr = arrNew;
            System.out.print("arr数组缩减后的值：");
            for(int i = 0;i < arr.length;i++){
                System.out.print(arr[i] + "  ");
            }
            if(arr.length == 1){
                System.out.println("\narr数组现在只剩下最后一个元素，不能再缩减啦！");
                break;
            }
            System.out.print("\n是否继续缩减(Y/N):");
            while(true){
                char kay = myScanner.next().charAt(0);
                if(kay == 'n' || kay == 'N'){
                    System.out.println("好的");
                    break;
                }else if(kay == 'y' || kay == 'Y'){
                    reduce = true;
                    break;
                }else{
                    System.out.print("输入有误,请重新输入(Y/N)！");
                }
            }
        }while(reduce);
    }

}

